Coler234 Coler234 - 2 months ago 15
MySQL Question

Grab data from a query

I'm trying to learn PHP, and to do so I'm attempting to create a URL shortener. Right now you can currently input a link and it enters it into the database. It doesn't randomize the string, but I'm going to do that after. (I changed them myself to avoid running into problems).

Here is my table currently(My table is called 'urls'):

Table

Then when you go to (for me localhost) /somepath it automatically redirects to /process.php?id=somepath

In process.php it checks if the specified path (somepath) exists in the database, then gets its original value. The problem I'm having is getting the original value. Again, I am new to PHP, and I'm having trouble understanding how querying works.

$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);


How do I grab information from $result? Or am I supposed to get it from $query after $result because that just basically runs it?

Please explain why you use what, I'm not understanding this.

Thanks, sorry if this is a really stupid question.

Answer

Use fetch_assoc() to grab data from your table in MySQLi Object-oriented.

Try this:

$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
    echo "0 results";
}

You can also put the result in an HTML table:

 if ($result->num_rows > 0) {
     echo "<table><tr><th>ID</th><th>Name</th></tr>";
     // output data of each row
     while($row = $result->fetch_assoc()) {
         echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
     }
     echo "</table>";
 } else {
     echo "0 results";
 }