Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

193
Views
tener 2 llamadas de función php
<?php select1($conn); function select2 ($conn,$id ,$name) { $stmt = $conn->prepare("SELECT def FROM define WHERE id = ?"); mysqli_stmt_bind_param($stmt, 'i', $id); $stmt->execute(); $stmt->bind_result($def); while($stmt->fetch()) { echo $def . “<br>” } $stmt->close(); } function select1 ($conn){ $stmt2 = $conn->prepare("SELECT id , name FROM words"); $stmt2->execute(); $stmt2->bind_result($id, $name); while($stmt2->fetch()) { select2 ($conn,$id ,$name); } } ?>

Tengo 2 funciones php para seleccionar datos de la base de datos. cada registro en palabras tiene múltiples registros en la tabla definida que necesito seleccionar. La primera función está funcionando correctamente. el problema es que la segunda función no funciona.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Como menciona @u_mulder, tiene comillas dobles incorrectas en uso.

Correcto:

$stmt = $conn->prepare("SELECT def FROM define WHERE id = ?");

Incorrecto:

$stmt2 = $conn->prepare("SELECT id , name FROM words”);

El carácter ” no es lo mismo que el carácter " . Esto causará un problema en su consulta. Ver más: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html

Limpiado:

 <?php select1($conn); function select2($conn, $id, $name){ $stmt = $conn->prepare("SELECT def FROM define WHERE id = ?"); $stmt->bind_param('i', $id); $stmt->execute(); $stmt->bind_result($def); while($stmt->fetch()) { echo $def . "<br>" } $stmt->close(); } function select1 ($conn){ $stmt2 = $conn->prepare("SELECT id, name FROM words"); $stmt2->execute(); $stmt2->bind_result($id, $name); while($stmt2->fetch()) { select2($conn, $id, $name); } } ?>

Luego de una inspección adicional, no veo dónde usa $id o $name , por lo que no estoy seguro de por qué está realizando 2 consultas. Aconsejaría una consulta de unión.

 <?php function select1 ($conn){ $stmt = $conn->prepare("SELECT w.id, w.name, d.define FROM words AS w INNER JOIN define AS d ON w.id = d.id"); $stmt->execute(); $stmt->bind_result($id, $name, $def); while($stmt->fetch()) { echo "($id) $name $def<br />"; } } ?>

Actualizar

Si tienes words de tabla:

 +----+--------+ | id | name | +----+--------+ | 1 | 'John' | | 2 | 'Mary' | | 3 | 'Bob' | +----+--------+

Y la tabla define :

 +----+--------------+ | id | def | +----+--------------+ | 1 | 'Some stuff' | | 1 | 'Other stuff'| | 1 | 'More stuff' | | 2 | 'Weird stuff'| | 2 | 'Kind stuff' | | 3 | 'Just stuff' | +----+--------------+

Nos referimos a esto: ¿Cuál es la diferencia entre "INNER JOIN" y "OUTER JOIN"?

La consulta podría ser una unión regular:

 SELECT a.id, a.name, b.def FROM word AS a JOIN define AS b ON a.id = b.id;

El conjunto de resultados debe ser:

 +----+--------+--------------+ | id | name | def | |----|--------|--------------| | 1 | 'John' | 'Some stuff' | | 1 | 'John' | 'Other stuff'| | 1 | 'John' | 'More stuff' | | 2 | 'Mary' | 'Weird stuff'| | 2 | 'Mary' | 'Kind stuff' | | 3 | 'Bob' | 'Just stuff' | +----+--------+--------------+

Espero que esto ayude a explicar tus opciones.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!